﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QLDHS.DAL;
using QLDHS.DO;
using Excel = Microsoft.Office.Interop.Excel;
namespace QLDHS
{
    public partial class KhenThuong : Form
    {
        KHENTHUONG_DAL kt = new KHENTHUONG_DAL();
        KHENTHUONG_DO ktdo = new KHENTHUONG_DO();
        public KhenThuong()
        {
            InitializeComponent();
        }

        private void drg_khenthuong_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (drg_khenthuong.SelectedRows.Count > 0)
            {
                btn_them.Enabled = false;
                btn_sua.Enabled = true;
                btn_xoa.Enabled = true;

                txt_makhenthuong.Enabled = false;

                txt_makhenthuong.Text = drg_khenthuong.SelectedRows[0].Cells["MAKHENTHUONG"].Value.ToString();
                txt_namkhenthuong.Text = drg_khenthuong.SelectedRows[0].Cells["SOLANKHENTHUONG"].Value.ToString();
                txt_solankhenthuongh.Text = drg_khenthuong.SelectedRows[0].Cells["NAMKHENTHUONG"].Value.ToString();
                txt_hinhthuc.Text = drg_khenthuong.SelectedRows[0].Cells["HINHTHUCKHENTHUONG"].Value.ToString();
                txt_lydo.Text = drg_khenthuong.SelectedRows[0].Cells["LYDO"].Value.ToString();
            }
            else
            {
                MessageBox.Show("bạn chưa chọn bản ghi nào để xem ", "Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
            }
        }
        private bool CheckNullData(string str, string str1, string str2, string str3, string str4)
        {
            if (str.Length == 0 || str1.Length == 0 || str2.Length == 0 || str3.Length == 0 || str4.Length == 0)
            {
                return false;
            }

            return true;
        }
        private void btn_them_Click(object sender, EventArgs e)
        {
            if (CheckNullData(txt_makhenthuong.Text, txt_namkhenthuong.Text, txt_solankhenthuongh.Text, txt_hinhthuc.Text, txt_hinhthuc.Text))
            {
                ktdo.NvmaKT = txt_makhenthuong.Text;
                ktdo.NvmaCB = cbx_tencanbo.SelectedValue.ToString();
                ktdo.Nvnamkhenthuong = Convert.ToInt32(txt_namkhenthuong.Text);
                ktdo.Nvsolankhenthuong = txt_solankhenthuongh.Text;
                ktdo.Nvhinhthuckhenthuong = txt_hinhthuc.Text;
                ktdo.Nvlydo = txt_lydo.Text;
                int checkAdd = kt.insertKT(ktdo);
                if (checkAdd > 0)
                {
                    MessageBox.Show("Thêm mới : " + cbx_tencanbo.SelectedValue.ToString() + "Thành công");
                    LoadAllKhenthuong();
                }
                else
                {
                    MessageBox.Show("Thêm mới Thất Bại ", "Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
                }

            }
            else
            {
                MessageBox.Show("Thông tin của các trường dữ liệu không được rỗng ", "Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
            }
        }

        private void btn_sua_Click(object sender, EventArgs e)
        {
            if (CheckNullData(txt_makhenthuong.Text, txt_namkhenthuong.Text, txt_solankhenthuongh.Text, txt_hinhthuc.Text, txt_hinhthuc.Text))
            {
                ktdo.NvmaKT = txt_makhenthuong.Text;
                ktdo.NvmaCB = cbx_tencanbo.SelectedValue.ToString();
                ktdo.Nvnamkhenthuong = Convert.ToInt32(txt_namkhenthuong.Text);
                ktdo.Nvsolankhenthuong = txt_solankhenthuongh.Text;
                ktdo.Nvhinhthuckhenthuong = txt_hinhthuc.Text;
                ktdo.Nvlydo = txt_lydo.Text;
                int checkAdd = kt.updateKT(ktdo);
                if (checkAdd > 0)
                {
                    MessageBox.Show("Cập nhật: " + cbx_tencanbo.SelectedValue.ToString() + "Thành công");
                    LoadAllKhenthuong();
                }
                else
                {
                    MessageBox.Show("Cập nhật Thất Bại ", "Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
                }

            }
            else
            {
                MessageBox.Show("Thông tin của các trường dữ liệu không được rỗng ", "Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
            }
        }

        private void btn_xoa_Click(object sender, EventArgs e)
        {
            if (txt_makhenthuong.Text.Length == 0)
            {

                int checkAdd = kt.delKT(txt_makhenthuong.Text);

                if (checkAdd > 0)
                {
                    MessageBox.Show("Xóa bản ghi : " + cbx_tencanbo.SelectedValue.ToString() + "Thành công");
                    LoadAllKhenthuong();
                }
                else
                {
                    MessageBox.Show("Xóa Người Thất Bại ", "Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
                }
            }
            else
            {
                MessageBox.Show("Thông tin của các trường dữ liệu không được rỗng ", "Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
            }
        }
        private void LoadAllKhenthuong()
        {
            drg_khenthuong.DataSource = kt.loadAll().Tables[0];
        }

        private void LoadAllMaNV()
        {
            cbx_tencanbo.DataSource = kt.loadMaNV().Tables[0];
            cbx_tencanbo.DisplayMember = "HOTEN";//
            cbx_tencanbo.ValueMember = "MACB";
        }
        private void KhenThuong_Load(object sender, EventArgs e)
        {
            btn_sua.Enabled = false;
            btn_xoa.Enabled = false;
            LoadAllMaNV();
            LoadAllKhenthuong();
        }

        private void btn_export_Click(object sender, EventArgs e)
        {
            Excel.Application xlApp;
            Excel.Workbook xlWorkBook;
            Excel.Worksheet xlWorkSheet;
            object misValue = System.Reflection.Missing.Value;

            Int16 i, j;

            xlApp = new Excel.Application();
            xlWorkBook = xlApp.Workbooks.Add(misValue);

            xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

            for (i = 0; i <= drg_khenthuong.RowCount - 2; i++)
            {
                for (j = 0; j <= drg_khenthuong.ColumnCount - 1; j++)
                {
                    xlWorkSheet.Cells[i + 1, j + 1] = drg_khenthuong[j, i].Value.ToString();
                }
            }
            string filename = "D:\\DANH_SACH_KHEN_THUONG.xls";
            xlWorkBook.SaveAs(@"" + filename + "", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
            xlWorkBook.Close(true, misValue, misValue);
            xlApp.Quit();

            releaseObject(xlWorkSheet);
            releaseObject(xlWorkBook);
            releaseObject(xlApp);

            MessageBox.Show("xuất file ra :" + filename + "Thành công");
        }
        private void releaseObject(object obj)
        {
            try
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                obj = null;
            }
            catch (Exception ex)
            {
                obj = null;
                MessageBox.Show("Exception Occured while releasing object " + ex.ToString());
            }
            finally
            {
                GC.Collect();
            }
        }
    }
}
